// Copyright 2007-2009 Comdiv (F. Sadykov) - http://code.google.com/u/fagim.sadykov/
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// 
//     http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// MODIFICATIONS HAVE BEEN MADE TO THIS FILE


using System;
using System.Xml;
using MvcContrib.Comdiv.Layers;
using MvcContrib.ViewFactories;

namespace MvcContrib.Comdiv.ViewEngines.Xslt{
    internal class SubviewUrlResolver : XmlUrlResolver{
        public SubviewUrlResolver(string path, XsltViewFactory factory){
            this.path = path;
            this.factory = factory;
        }

        protected XsltViewFactory factory { get; set; }

        protected string path { get; set; }


        public override Uri ResolveUri(Uri baseUri, string relativeUri){
            var uri = new Uri(relativeUri);
            if (uri.Scheme == "subview"){
                return new Uri(factory.ResolveSubView(path, uri.PathAndQuery));
            }
            return base.ResolveUri(baseUri, relativeUri);
        }
    }
}